   
   #ifndef MySubProgramH
#define MySubProgramH

   #define PID_AngleToSpeed            13                 //  T速度 ==> 速度
       #define PID_MAX_Speed_Angle         5                 //  最大速度角度差
           //=======      Timer常量     =========
    #define SYSTEM_TIMER        50.0
   typedef struct   LDH_AXIS_STATE_STRUCT
    {
        //命令
        bool   Enabled;                                 //轴允许
        bool   Moving;                                  //可运行
        bool   Cmd_dir ;                                //运行方向
        double Cmd_speed ;                              //速度
        bool   Cmd_break;                               //制动器命令
        int    Cmd_El_stow ;

        int    Cmd_ZeroDir ;                            //过零方向  2=ccw, 1=cw ,0=n
        //状态
        bool   Hand_SW1, Hand_SW2 ;
        bool   Door_SW ;
        bool   Door_1, Door_2 ;                         //中心体仓门 ， 反射体仓门

        bool   Power_on ;                               //轴加电
        double Angle_er;
        double Cmd_Time ;                               //命令时间,按时标方式运行模式用
        double Angle , Cmd_angle, Stop_angle ;          //角度
        double Angle2, Cmd_angle2, Cmd_angle3 ;         //两圈角度
        bool   Zero_SW ;                                //过零开关   1=内圈, 0=外圈
        double Motor_Current  ;                         //电机电流
        bool   Using;                                   //运行状态
        bool   S_lm_CW,S_lm_CCW,P_lm_CW,P_lm_CCW,F_lm_CW,F_lm_CCW;
        bool   Motor1_fault , Motor2_fault ;            //马达工作？
        bool   Motor_break1,Motor_break2 ;              //制动状态
        bool   Motor_break ;                            //制动状态
        double Cmd_speed_Max ;                          //
        bool   Pos_lm, Stow_lm, Release_lm ;            //锁定限位
        bool   LoopFault ;                              //环路工作状态
        //故障判断
        double Old_angle ;
        bool   Old_dir;
        int    Time_count;
    }MY_AXIS ;
    
    
    //------------------------ 位置环 ---------------------------------

typedef struct _PID_STRUCT
{
    double KP,KI,KD;
    double AtoV ;             //角度转速度电压
    double angle_max;
    double v_max,a_max ;

    double err_last,sum_last ;//最近误差，积分和

    double err,err_1,err_2 ;//最近误差，积分和
    double er_org,acc_1,acc_2,out;
//2
    double out2;
}_PID_STRUCT;

    
    #endif